//go:build windows
// +build windows

package main

import (
	"demo_2/icon"
	"fmt"
	托盘类 "gitee.com/go_888/tray"
	浏览器类 "gitee.com/go_888/webview2"
	"log"
)

var w *浏览器类.Web视图
var 托盘开始 func() //备注:在程序的其他地方, 可以使用这个显示托盘菜单
var 托盘结束 func() //备注:在程序的其他地方, 可以使用这个结束托盘菜单/
func main() {
	w = 浏览器类.X创建(浏览器类.X结构_Web视图选项{
		X开发者工具: true,
		X自动聚焦:  true,
		X窗口选项: 浏览器类.X结构_窗口选项{
			X窗口标题:   "增强版 Webview 演示",
			X窗口宽度:   0,
			X窗口高度:   0,
			X图标文件路径: "logo.ico",
			X是否居中:   true,  // 居中
			X是否无边框:  false, // 无边框
			X是否全屏:   false, // 全屏
			X是否置顶:   false, // 置顶
			X可调整大小:  false, // 可调整大小
			X禁止最小化:  false, // 可最小化
			X禁止最大化:  false, // 可最大化
			X隐藏窗口:   false,
			X默认背景色:  "#FFFFFF", // 默认背景色 (CSS 格式，如 "#FFFFFF")
		},
	})
	if w == nil {
		log.Fatalln("加载 webview 失败。")
	}
	defer w.X销毁()

	w.X导航("https://www.baidu.com/")
	w.X事件_关闭窗口(func() bool {
		w.X显示窗口(false)
		return false
	})

	w2 := 浏览器类.X创建(浏览器类.X结构_Web视图选项{
		X开发者工具: true,
		X自动聚焦:  true,
		X窗口选项: 浏览器类.X结构_窗口选项{
			X窗口标题:   "增强版 Webview 演示",
			X窗口宽度:   0,
			X窗口高度:   0,
			X图标文件路径: "logo.ico",
			X是否居中:   true,  // 居中
			X是否无边框:  false, // 无边框
			X是否全屏:   false, // 全屏
			X是否置顶:   false, // 置顶
			X可调整大小:  false, // 可调整大小
			X禁止最小化:  true,  // 可最小化
			X禁止最大化:  true,  // 可最大化
			X隐藏窗口:   false,
			X默认背景色:  "#FFFFFF", // 默认背景色 (CSS 格式，如 "#FFFFFF")
		},
	})
	w2.X导航("https://www.hao123.com/?src=from_pc")

	var 运行循环 = func() {
		托盘开始, 托盘结束 = 托盘类.X异步运行(托盘添加项, nil)
		托盘开始()
	}
	go 运行循环()
	浏览器类.X运行()
}

func 托盘添加项() {
	托盘类.X设置托盘图标(icon.Data)
	托盘类.X设置图标提示("浏览器")
	托盘类.X事件_左键点击(func(menu 托盘类.X接口_菜单项) {
		w.X显示窗口(true)
		fmt.Println("托盘被左键单击")
	})

	托盘类.X事件_右键单击(func(menu 托盘类.X接口_菜单项) {
		w.X设置标题("测试")
		menu.X显示菜单()
		fmt.Println("托盘被右键单击")
	})
	退出 := 托盘类.X加入菜单项("退出")
	退出.X鼠标单击(func() {
		浏览器类.X全部退出()
		托盘类.X退出()
		fmt.Println("已完成退出")
	})

	托盘类.X设置托盘图标(icon.Data)
	mChange := 托盘类.X加入菜单项("改变我")
	mChecked := 托盘类.X加入菜单项("选中的")

	mChange.X鼠标单击(func() {
		mChange.X设置名称("我改变了")
	})

	mChecked.X鼠标单击(func() {
		if mChecked.X是否选中() {
			mChecked.X取消选中()
			mChecked.X设置名称("未选中")
		} else {
			mChecked.X选中菜单项()
			mChecked.X设置名称("选中的")
		}
	})

	// 托盘图标开关
	//go func() {
	//	var b bool
	//	// 演示：转png完整路径
	//	wd, _ := os.Getwd()
	//	wd = filepath.Join(wd, "icon")
	//
	//	// 图标路径:/to/icon/path/icon.png, logo.png
	//	var ext = ".png"
	//	if runtime.GOOS == "windows" {
	//		ext = ".ico" // windows .ico
	//	}
	//	icoData, _ := ioutil.ReadFile(filepath.Join(wd, "icon"+ext))
	//	logoData, _ := ioutil.ReadFile(filepath.Join(wd, "logo"+ext))
	//	for true {
	//		time.Sleep(time.Second * 1)
	//		b = !b
	//		if b {
	//			托盘类.X设置托盘图标(logoData)
	//		} else {
	//			托盘类.X设置托盘图标(icoData)
	//		}
	//	}
	//}()
}
